A backup snapshot represents the state of a primary system at a particular point in time. A full backup snapshot of a system may be composed of large amounts of data (e.g., terabytes, petabytes, etc.). Performing a full backup snapshot of a primary system at frequent intervals (e.g., hourly, daily) requires large amounts of storage to store the backup snapshots. To reduce the amount of storage required, an incremental backup snapshot of the primary system may be performed between full backup snapshots. An incremental backup snapshot includes the changes that have occurred to the primary system since the previous (full or incremental) backup snapshot. The backup snapshots may be stored at a secondary storage system. However, mounting a volume that includes a full backup snapshot and several incremental backup snapshots may require large amounts of storage at the secondary storage system and require a large amount of data to be transferred from the secondary storage system to the primary system.
For example, suppose a full backup snapshot of a primary system comprised of 1 TB of data was performed at t=0 and an incremental backup snapshot of 100 GB of data was performed at each t, from t=1 to t=10. Some of the data from an incremental backup snapshot may overwrite the data from the full backup snapshot and/or a previous incremental backup snapshot. However, to recover and mount the primary system at t=10 requires starting from the full backup snapshot at t=0 and adding each incremental backup snapshot to the primary system until the combined snapshots reproduce the state of the primary system at t=10. In this example, 2 TB of storage is required to recover the primary system comprised of 1 TB at t=10.
The above process requires a large amount of data to be transferred from a secondary storage system to the primary system. This requires time and resources (e.g., bandwidth). It would be useful to reduce the amount of time and resources required to recover the primary system to a particular point in time.